home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_09_04 / 9n04018a < prev    next >
Text File  |  1991-03-19  |  1KB  |  50 lines

  1.  
  2. /* _Setloc function */
  3. #include <ctype.h>
  4. #include <limits.h>
  5. #include <locale.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8.  
  9. /* set category for locale */
  10. struct lconv *_Setloc(int cat, struct lconv *p)
  11.     {
  12.     switch (cat)
  13.         {    /* set a category */
  14.     case LC_COLLATE:
  15.         break;
  16.     case LC_CTYPE:
  17.         _Ctype = p->_Ctype;
  18.         _Tolower = p->_Tolower;
  19.         _Toupper = p->_Toupper;
  20.         break;
  21.     case LC_MONETARY:
  22.         _Locale.currency_symbol = p->currency_symbol;
  23.         _Locale.int_curr_symbol = p->int_curr_symbol;
  24.         _Locale.mon_decimal_point = p->mon_decimal_point;
  25.         _Locale.mon_grouping = p->mon_grouping;
  26.         _Locale.mon_thousands_sep = p->mon_thousands_sep;
  27.         _Locale.negative_sign = p->negative_sign;
  28.         _Locale.positive_sign = p->positive_sign;
  29.         _Locale.frac_digits = p->frac_digits;
  30.         _Locale.int_frac_digits = p->int_frac_digits;
  31.         _Locale.n_cs_precedes = p->n_cs_precedes;
  32.         _Locale.n_sep_by_space = p->n_sep_by_space;
  33.         _Locale.n_sign_posn = p->n_sign_posn;
  34.         _Locale.p_cs_precedes = p->p_cs_precedes;
  35.         _Locale.p_sep_by_space = p->p_sep_by_space;
  36.         _Locale.p_sign_posn = p->p_sign_posn;
  37.         break;
  38.     case LC_NUMERIC:
  39.         _Locale.decimal_point = p->decimal_point[0] != '\0'
  40.             ? p->decimal_point : ".";
  41.         _Locale.grouping = p->grouping;
  42.         _Locale.thousands_sep = p->thousands_sep;
  43.         break;
  44.     case LC_TIME:
  45.         break;
  46.         }
  47.     return (p);
  48.     }
  49.  
  50.